/**
 * define a Feature-id
 * shoudl be a 0-ended string
 *
 */
#ifndef CORE_METADATA_H
#define CORE_METADATA_H


#ifdef  __cplusplus
extern "C" {
#endif


/**
 * MetaDataID
 * Description: Meta data categories, formats types, and object identifiers. The number in here is the object category, format or status ID.
 *
 */

enum MetaDataID
	{
	CUNK	=	0	/* unknown */
	,CPSE	=	1	/* pseudogene */
	,CGEN	=	2	/* gene locus */
	,CORF	=	3	/* open reading frame */
	,CQTL	=	4	/* quantitative trait locus */
	,CMRN	=	5	/* mRNA */
	,CPMT	=	6	/* promoter */
	,CUTR	=	7	/* untranslated */
	,CCDS	=	8	/* protein coding */
	,CRNA	=	9	/* RNA */
	,CEST	=	10	/* EST */
	,CTRN	=	11	/* tRNA */
	,CRRN	=	12	/* rRNA */
	,CSNR	=	13	/* snRNA */
	,CSCR	=	14	/* scRNA */
	,CSNO	=	15	/* snoRNA */
	,CTPS	=	16	/* transposon */
	,CPRO	=	17	/* protein */
	,CDNA	=	18	/* gDNA */
	,CSTS	=	19	/* STS */
	,CMST	=	20	/* microsat or simple repeat */
	,CSNP	=	21	/* SNP */
	,CINS	=	22	/* insertion */
	,CDEL	=	23	/* deletion */
	,CMNP	=	24	/* such as AAA/TTT, AG/GA, but also G/TA */
	,CREP	=	25	/* named with tag ex ALU/- */
	,CHET	=	26	/* unkown seq composition but know to be heterozygos */
	,CMIX	=	27	/* mixed */
	,CTRI	=	28	/* tri-allelic */
	,CNOV	=	29	/* no variant sequence */
	,CPAR	=	30	/* paralog */
	,CORT	=	31	/* ortholog */
	,COLG	=	32	/* oligo */
	,C5UT	=	33	/* 5UTR */
	,C3UT	=	34	/* 3UTR */
	,CGGM	=	35	/* Genethon genetic map */
	,CMGM	=	36	/* Marshfield genetic map */
	,CDGM	=	37	/* deCODE genetic map */
	,CMGI	=	38	/* MGI genetic map */
	,CWGM	=	39	/* WI-Genetic MAP */
	,CSYN	=	40	/* synonymous */
	,CIND	=	41	/* indel */
	,CFXA	=	42	/* FHHxACI genetic map */
	,CSXB	=	43	/* SHRSPxBN genetic map */
	,CPCR	=	44	/* PCR */
	,FTXT	=	45	/* text */
	,FTAB	=	46	/* tab delimited */
	,FCSV	=	47	/* comma delimited */
	,FHTM	=	48	/* XHTML format */
	,FXML	=	49	/* XML format */
	,ORHN	=	50	/* RH123 */
	,ODSN	=	51	/* D13S123 */
	,OGDB	=	52	/* GDB:27736 */
	,OPRJ	=	53	/* project id */
	,OGIN	=	54	/* gi83727 */
	,ORSN	=	55	/* rs82837 */
	,OCTG	=	56	/* NT_123456 or NC_123456 */
	,ORNA	=	57	/* NM_123456 or XM_123456 */
	,OPRO	=	58	/* NP_123456 or XP_123456 */
	,OGBK	=	59	/* AB123456 or M12345 */
	,OGEN	=	60	/* Entrez Gene id */
	,OSTS	=	61	/* UniSTS id */
	,OFIN	=	62	/* project fin id */
	,OVOC	=	63	/* univoc id */
	,OSNP	=	64	/* snp id */
	,OCNG	=	65	/* CNG snp id */
	,OANY	=	66	/* Any id */
	,OLOC	=	67	/* Locus feature id */
	,OMIX	=	68	/* Mixed ids */
	,OTRM	=	69	/* Term */
	,UADM	=	70	/* full access */
	,UVIP	=	71	/* exceptional access */
	,UPRO	=	72	/* operational access */
	,UNE1	=	73	/* public access */
	,ISNG	=	74	/* state or status is not good */
	,STOP	=	75	/* status on halt */
	,STAR	=	76	/* ready to process */
	,ISOK	=	77	/* state or status is good */
	,FFAS	=	78	/* FASTA */
	,CCMM	=	79	/* genetic map */
	,CRHM	=	80	/* RHM map */
	,CHYP	=	81	/* hypothetical model */
	,FILL	=	82	/* Illumina */
	,FTAQ	=	83	/* Taqman */
	,FPLX	=	84	/* SNPlex */
	,CINT	=	85	/* intron */
	,CRLX	=	86	/* relax */
	,CSTC	=	87	/* strict */
	,CREF	=	88	/* RefSeq */
	,CENZ	=	89	/* Restriction enzyme */
	,CEND	=	90	/* must be always the last one */
	};


/**
 *  Meta data category structure.
 *
 */

struct MetDat
	{
	enum MetaDataID     oid;                  /*  1. Meta data object ID */
	char                acn[4];               /*  2. Category short name */
	char                def[32];              /*  3. Category long name */
	}MetDat,MetaData,MetaData,*MetaDataPtr;

/**
 * @return the array of metadata. Ends with oid=CEND
 */
extern const MetaDataPtr metaDataGetItems();


#ifdef  __cplusplus
	}
#endif

#endif

